package main

import (
	"bufio"
	"compress/gzip"
	"fmt"
	"os"
	"strings"
)

// 使用compress包读取压缩文件(.gz文件)
// 打开文件句柄
// 使用gzip操作句柄读取文件

func main() {
	fName := "myFile.gz"
	var r *bufio.Reader
	fi, err := os.Open(fName)
	if err != nil {
		fmt.Fprintf(os.Stderr, "%v, File Open Fail%s: error: %s\n", os.Args[0], fName, err.Error())
		os.Exit(1)
	}
	defer fi.Close()
	fz, err := gzip.NewReader(fi)

	if err != nil {
		r = bufio.NewReader(fi)
	} else {
		r = bufio.NewReader(fz)
	}
	fmt.Printf("开始读取文件内容: %s\n", fName)
	for {
		line, err := r.ReadString('\n')
		if err != nil {
			fmt.Println("文件读取完毕.", err.Error())
			os.Exit(0)
		}
		line = strings.TrimRight(line, "\n")
		fmt.Println(line)
	}
}
